This invention relates in general to selective call radios, and particularly, to a method and apparatus for efficiently transferring data between peripherals in a selective call radio.
As demand for portable battery-operated units continues to grow, manufacturers of these portable units are striving to improve power efficiency to extend their battery life. Improvements in submicron semiconductors fabrication has significantly contributed to an extended battery life for portable units. However, there are circumstances where power efficiency remains below expectations.
This problem generally arises when peripherals of differing memory architectures are coupled together through a standard bus. For example, to update registers of an 8-bit peripheral coupled to a standard conventional 32 bit bus, such as the AMBA (Advanced Micro-controller Bus Architecture), a sourcing peripheral (e.g., a microprocessor) is forced to use the lower 8 bits of the data bus to execute read and write cycles to these registers. Table 1 of FIG. 1 illustrates how registers of an 8-bit peripheral (e.g., a memory) are mapped both in memory space and on the data bus of an AMBA standard bus.
The first column of Table 1 provides the address mapping of registers xe2x80x9cR0xe2x80x9d through xe2x80x9cR7xe2x80x9d. The subsequent four columns of Table 1 show the bit range assignment of these registers on the AMBA data bus. As should be evident from Table 1, register xe2x80x9cROxe2x80x9d is memory mapped so that it occupies addresses 0 through 3 in hex. For performing read and write cycles, only the lower 8 bits of the 32 bit data bus (i.e., D[7:0]) are utilized. The upper 24 bits of the 32 bit data bus (i.e., D[31:8]) are kept either floating or fixed to a particular logic value (e.g., xe2x80x9c0xe2x80x9d) during a read or write cycle. Hence, in the instance where registers xe2x80x9cROxe2x80x9d through xe2x80x9cR7xe2x80x9d need to be updated, eight 32 bit write cycles are necessary to complete the update of these registers. Clearly, each of these write cycles fails to take advantage of the upper three unused bytes (i.e., D[31:24], D[23:16]) and D[15:8]) of the 32 bit data bus, which if utilized could reduce the foregoing update to two write cycles, thereby substantially reducing power consumption.
To avoid the foregoing problem, prior art systems have concatenated 8 bit registers to utilize all byte positions of a 32 bit data bus. This method is illustrated in Table 2 as depicted in FIG. 2. According to this method, registers xe2x80x9cR0xe2x80x9d through xe2x80x9cR3xe2x80x9d occupy the memory space 0 through 3 in hex. Each register occupies a corresponding byte segment of the data bus, thereby utilizing the entire bit range of the data bus. Hence, to update registers xe2x80x9cR0xe2x80x9d through xe2x80x9cR3xe2x80x9d, a 32 bit microprocessor will source a 32 bit write cycle, whereby xe2x80x9cR0xe2x80x9d occupies the most significant byte of the data bus (i.e., D[31:24]), xe2x80x9cR1xe2x80x9d occupies the next contiguous byte segment of the data bus (i.e., D[23:16]) and so on as shown in FIG. 2. Consequently, only two write cycles (one at addresses xe2x80x9c0xe2x80x9d, and the other at address xe2x80x9c4xe2x80x9d in hex) are necessary for updating eight registers. This improves power efficiency by a factor of approximately 400% when compared to the previous example. Although on its face the improvement is substantial, this method in the art continues to suffer from inefficiencies in certain circumstances.
Principally, problems arise when in the example above only a few registers need to be updated. For example, assume that only registers xe2x80x9cR0xe2x80x9d and xe2x80x9cR4xe2x80x9d require an update. In this instance, the sourcing device must recall the values of xe2x80x9cR1xe2x80x9d through xe2x80x9cR3xe2x80x9d, and xe2x80x9cR5xe2x80x9d through xe2x80x9cR7xe2x80x9d, respectively, to avoid overwriting the values included in these registers. Because of the additional software instructions cycles necessary for retrieving information on the unchanged registers, the power savings originally mentioned are substantially diminished in circumstances where only a few concatenated registers need to be updated.
The impact that the aforementioned deficiencies in the prior art have on the battery life performance of portable battery operated units becomes evident when power efficiency is calculated over millions of data transactions occurring between peripherals included in a selective call radio. Accordingly, what is needed is a method and apparatus for efficiently transferring data between peripherals in a selective call radio.